{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tushare as ts\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import warnings\n",
    "import sys\n",
    "import datetime\n",
    "\n",
    "sys.path.append(\"..\")\n",
    "\n",
    "from imp import reload\n",
    "\n",
    "import common\n",
    "reload(common)\n",
    "reload(common.analysis_helper)\n",
    "\n",
    "from common.config_helper import config_helper\n",
    "from common.analysis_helper import analysis_helper\n",
    "\n",
    "#import common.date_helper\n",
    "#reload(common.date_helper)\n",
    "\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "config = config_helper()\n",
    "start_date = \"20200101\"\n",
    "end_date = \"20201231\"\n",
    "pro = ts.pro_api(config.tushare_token)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ts_code</th>\n",
       "      <th>trade_date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>pre_close</th>\n",
       "      <th>change</th>\n",
       "      <th>pct_chg</th>\n",
       "      <th>vol</th>\n",
       "      <th>amount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>20201231</td>\n",
       "      <td>9.32</td>\n",
       "      <td>9.43</td>\n",
       "      <td>9.16</td>\n",
       "      <td>9.29</td>\n",
       "      <td>9.27</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.2157</td>\n",
       "      <td>2438899.64</td>\n",
       "      <td>2267849.820</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>20201230</td>\n",
       "      <td>9.09</td>\n",
       "      <td>9.36</td>\n",
       "      <td>8.99</td>\n",
       "      <td>9.27</td>\n",
       "      <td>9.10</td>\n",
       "      <td>0.17</td>\n",
       "      <td>1.8681</td>\n",
       "      <td>2451022.32</td>\n",
       "      <td>2258500.597</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>20201229</td>\n",
       "      <td>9.51</td>\n",
       "      <td>9.55</td>\n",
       "      <td>9.10</td>\n",
       "      <td>9.10</td>\n",
       "      <td>9.44</td>\n",
       "      <td>-0.34</td>\n",
       "      <td>-3.6017</td>\n",
       "      <td>2440644.36</td>\n",
       "      <td>2254838.142</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>20201228</td>\n",
       "      <td>9.37</td>\n",
       "      <td>9.65</td>\n",
       "      <td>9.35</td>\n",
       "      <td>9.44</td>\n",
       "      <td>9.27</td>\n",
       "      <td>0.17</td>\n",
       "      <td>1.8339</td>\n",
       "      <td>3210290.10</td>\n",
       "      <td>3055390.719</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>20201225</td>\n",
       "      <td>8.93</td>\n",
       "      <td>9.30</td>\n",
       "      <td>8.71</td>\n",
       "      <td>9.27</td>\n",
       "      <td>8.91</td>\n",
       "      <td>0.36</td>\n",
       "      <td>4.0404</td>\n",
       "      <td>2733569.14</td>\n",
       "      <td>2487214.501</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     ts_code trade_date  open  high   low  close  pre_close  change  pct_chg  \\\n",
       "0  601899.SH   20201231  9.32  9.43  9.16   9.29       9.27    0.02   0.2157   \n",
       "1  601899.SH   20201230  9.09  9.36  8.99   9.27       9.10    0.17   1.8681   \n",
       "2  601899.SH   20201229  9.51  9.55  9.10   9.10       9.44   -0.34  -3.6017   \n",
       "3  601899.SH   20201228  9.37  9.65  9.35   9.44       9.27    0.17   1.8339   \n",
       "4  601899.SH   20201225  8.93  9.30  8.71   9.27       8.91    0.36   4.0404   \n",
       "\n",
       "          vol       amount  \n",
       "0  2438899.64  2267849.820  \n",
       "1  2451022.32  2258500.597  \n",
       "2  2440644.36  2254838.142  \n",
       "3  3210290.10  3055390.719  \n",
       "4  2733569.14  2487214.501  "
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_zj = pro.daily(ts_code=\"601899.SH\", start_date = start_date, end_date = end_date)\n",
    "df_zj.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bigger</th>\n",
       "      <th>zero</th>\n",
       "      <th>small</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>high</th>\n",
       "      <td>195</td>\n",
       "      <td>5</td>\n",
       "      <td>43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>open</th>\n",
       "      <td>113</td>\n",
       "      <td>26</td>\n",
       "      <td>104</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      bigger  zero  small\n",
       "high     195     5     43\n",
       "open     113    26    104"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "ana = analysis_helper(df_zj)\n",
    "df_open = ana.GetAnalyInfo()\n",
    "\n",
    "df_open.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>b_zero</th>\n",
       "      <th>zero</th>\n",
       "      <th>s_zero</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>195</td>\n",
       "      <td>5</td>\n",
       "      <td>43</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   b_zero  zero  s_zero\n",
       "0     195     5      43"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_high"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f24b90eccf8>"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_zj.close.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ts_code</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>pre_close</th>\n",
       "      <th>change</th>\n",
       "      <th>pct_chg</th>\n",
       "      <th>vol</th>\n",
       "      <th>amount</th>\n",
       "      <th>o2pre</th>\n",
       "      <th>h2pre</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>trade_date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020-12-31</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>9.32</td>\n",
       "      <td>9.43</td>\n",
       "      <td>9.16</td>\n",
       "      <td>9.29</td>\n",
       "      <td>9.27</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.2157</td>\n",
       "      <td>2438899.64</td>\n",
       "      <td>2267849.820</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-12-30</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>9.09</td>\n",
       "      <td>9.36</td>\n",
       "      <td>8.99</td>\n",
       "      <td>9.27</td>\n",
       "      <td>9.10</td>\n",
       "      <td>0.17</td>\n",
       "      <td>1.8681</td>\n",
       "      <td>2451022.32</td>\n",
       "      <td>2258500.597</td>\n",
       "      <td>-0.01</td>\n",
       "      <td>0.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-12-29</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>9.51</td>\n",
       "      <td>9.55</td>\n",
       "      <td>9.10</td>\n",
       "      <td>9.10</td>\n",
       "      <td>9.44</td>\n",
       "      <td>-0.34</td>\n",
       "      <td>-3.6017</td>\n",
       "      <td>2440644.36</td>\n",
       "      <td>2254838.142</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-12-28</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>9.37</td>\n",
       "      <td>9.65</td>\n",
       "      <td>9.35</td>\n",
       "      <td>9.44</td>\n",
       "      <td>9.27</td>\n",
       "      <td>0.17</td>\n",
       "      <td>1.8339</td>\n",
       "      <td>3210290.10</td>\n",
       "      <td>3055390.719</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-12-25</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>8.93</td>\n",
       "      <td>9.30</td>\n",
       "      <td>8.71</td>\n",
       "      <td>9.27</td>\n",
       "      <td>8.91</td>\n",
       "      <td>0.36</td>\n",
       "      <td>4.0404</td>\n",
       "      <td>2733569.14</td>\n",
       "      <td>2487214.501</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.39</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              ts_code  open  high   low  close  pre_close  change  pct_chg  \\\n",
       "trade_date                                                                   \n",
       "2020-12-31  601899.SH  9.32  9.43  9.16   9.29       9.27    0.02   0.2157   \n",
       "2020-12-30  601899.SH  9.09  9.36  8.99   9.27       9.10    0.17   1.8681   \n",
       "2020-12-29  601899.SH  9.51  9.55  9.10   9.10       9.44   -0.34  -3.6017   \n",
       "2020-12-28  601899.SH  9.37  9.65  9.35   9.44       9.27    0.17   1.8339   \n",
       "2020-12-25  601899.SH  8.93  9.30  8.71   9.27       8.91    0.36   4.0404   \n",
       "\n",
       "                   vol       amount  o2pre  h2pre  \n",
       "trade_date                                         \n",
       "2020-12-31  2438899.64  2267849.820   0.05   0.16  \n",
       "2020-12-30  2451022.32  2258500.597  -0.01   0.26  \n",
       "2020-12-29  2440644.36  2254838.142   0.07   0.11  \n",
       "2020-12-28  3210290.10  3055390.719   0.10   0.38  \n",
       "2020-12-25  2733569.14  2487214.501   0.02   0.39  "
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_zj.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ts_code</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>pre_close</th>\n",
       "      <th>change</th>\n",
       "      <th>pct_chg</th>\n",
       "      <th>vol</th>\n",
       "      <th>amount</th>\n",
       "      <th>o2pre</th>\n",
       "      <th>h2pre</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>trade_date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020-12-31</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>9.32</td>\n",
       "      <td>9.43</td>\n",
       "      <td>9.16</td>\n",
       "      <td>9.29</td>\n",
       "      <td>9.27</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.2157</td>\n",
       "      <td>2438899.64</td>\n",
       "      <td>2267849.820</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-12-30</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>9.09</td>\n",
       "      <td>9.36</td>\n",
       "      <td>8.99</td>\n",
       "      <td>9.27</td>\n",
       "      <td>9.10</td>\n",
       "      <td>0.17</td>\n",
       "      <td>1.8681</td>\n",
       "      <td>2451022.32</td>\n",
       "      <td>2258500.597</td>\n",
       "      <td>-0.01</td>\n",
       "      <td>0.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-12-29</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>9.51</td>\n",
       "      <td>9.55</td>\n",
       "      <td>9.10</td>\n",
       "      <td>9.10</td>\n",
       "      <td>9.44</td>\n",
       "      <td>-0.34</td>\n",
       "      <td>-3.6017</td>\n",
       "      <td>2440644.36</td>\n",
       "      <td>2254838.142</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-12-28</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>9.37</td>\n",
       "      <td>9.65</td>\n",
       "      <td>9.35</td>\n",
       "      <td>9.44</td>\n",
       "      <td>9.27</td>\n",
       "      <td>0.17</td>\n",
       "      <td>1.8339</td>\n",
       "      <td>3210290.10</td>\n",
       "      <td>3055390.719</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-12-25</th>\n",
       "      <td>601899.SH</td>\n",
       "      <td>8.93</td>\n",
       "      <td>9.30</td>\n",
       "      <td>8.71</td>\n",
       "      <td>9.27</td>\n",
       "      <td>8.91</td>\n",
       "      <td>0.36</td>\n",
       "      <td>4.0404</td>\n",
       "      <td>2733569.14</td>\n",
       "      <td>2487214.501</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.39</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              ts_code  open  high   low  close  pre_close  change  pct_chg  \\\n",
       "trade_date                                                                   \n",
       "2020-12-31  601899.SH  9.32  9.43  9.16   9.29       9.27    0.02   0.2157   \n",
       "2020-12-30  601899.SH  9.09  9.36  8.99   9.27       9.10    0.17   1.8681   \n",
       "2020-12-29  601899.SH  9.51  9.55  9.10   9.10       9.44   -0.34  -3.6017   \n",
       "2020-12-28  601899.SH  9.37  9.65  9.35   9.44       9.27    0.17   1.8339   \n",
       "2020-12-25  601899.SH  8.93  9.30  8.71   9.27       8.91    0.36   4.0404   \n",
       "\n",
       "                   vol       amount  o2pre  h2pre  \n",
       "trade_date                                         \n",
       "2020-12-31  2438899.64  2267849.820   0.05   0.16  \n",
       "2020-12-30  2451022.32  2258500.597  -0.01   0.26  \n",
       "2020-12-29  2440644.36  2254838.142   0.07   0.11  \n",
       "2020-12-28  3210290.10  3055390.719   0.10   0.38  \n",
       "2020-12-25  2733569.14  2487214.501   0.02   0.39  "
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ana.df.head()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
